rendericon: Use new snapshot transforms
authorBenjamin Otte <otte@redhat.com>
Thu, 21 Feb 2019 04:34:12 +0000 (05:34 +0100)
committerBenjamin Otte <otte@redhat.com>
Thu, 21 Feb 2019 18:47:28 +0000 (19:47 +0100)
gtk/gtkrendericon.c

index a4d867001f1e6e8fbad57fc024f443f21c56fd95..f79862fa7339ff2ef8e485328d23340b59e6209b 100644 (file)
@@ -73,19 +73,16 @@ gtk_css_style_snapshot_icon (GtkCssStyle            *style,
     }
   else
     {
-      graphene_matrix_t m1, m2, m3;
+      gtk_snapshot_save (snapshot);
 
       /* XXX: Implement -gtk-icon-transform-origin instead of hardcoding "50% 50%" here */
-      graphene_matrix_init_translate (&m1, &GRAPHENE_POINT3D_INIT (width / 2.0, height / 2.0, 0));
-      graphene_matrix_multiply (&transform_matrix, &m1, &m3);
-      graphene_matrix_init_translate (&m2, &GRAPHENE_POINT3D_INIT (- width / 2.0, - height / 2.0, 0));
-      graphene_matrix_multiply (&m2, &m3, &m1);
-
-      gtk_snapshot_push_transform (snapshot, &m1);
+      gtk_snapshot_translate (snapshot, &GRAPHENE_POINT_INIT (width / 2.0, height / 2.0));
+      gtk_snapshot_transform_matrix (snapshot, &transform_matrix);
+      gtk_snapshot_translate (snapshot, &GRAPHENE_POINT_INIT (- width / 2.0, - height / 2.0));
 
       gtk_css_image_builtin_snapshot (image, snapshot, width, height, builtin_type);
 
-      gtk_snapshot_pop (snapshot);
+      gtk_snapshot_restore (snapshot);
     }
 
   if (has_shadow)
@@ -153,19 +150,16 @@ gtk_css_style_snapshot_icon_paintable (GtkCssStyle  *style,
     }
   else
     {
-      graphene_matrix_t m1, m2, m3;
+      gtk_snapshot_save (snapshot);
 
       /* XXX: Implement -gtk-icon-transform-origin instead of hardcoding "50% 50%" here */
-      graphene_matrix_init_translate (&m1, &GRAPHENE_POINT3D_INIT (width / 2.0, height / 2.0, 0));
-      graphene_matrix_multiply (&transform_matrix, &m1, &m3);
-      graphene_matrix_init_translate (&m2, &GRAPHENE_POINT3D_INIT (- width / 2.0, - height / 2.0, 0));
-      graphene_matrix_multiply (&m2, &m3, &m1);
-
-      gtk_snapshot_push_transform (snapshot, &m1);
+      gtk_snapshot_translate (snapshot, &GRAPHENE_POINT_INIT (width / 2.0, height / 2.0));
+      gtk_snapshot_transform_matrix (snapshot, &transform_matrix);
+      gtk_snapshot_translate (snapshot, &GRAPHENE_POINT_INIT (- width / 2.0, - height / 2.0));
 
       gdk_paintable_snapshot (paintable, snapshot, width, height);
 
-      gtk_snapshot_pop (snapshot);
+      gtk_snapshot_restore (snapshot);
     }
 
   if (recolor)